@if(session('success'))
✓ {{ session('success') }}
@endif @if(session('error'))
⚠ {{ session('error') }}
@endif All Invoices {{-- Edit lock warning --}} @if(! $this->canEdit())
Fee items are locked because payments have been recorded against this invoice. Remove all payments first to re-enable editing.
@endif {{-- Invoice header --}}
{{ $invoice->student->full_name }} {{ ucfirst($invoice->status) }} @if($invoice->isSent()) Sent {{ $invoice->sent_at->format('d M Y') }} @else Draft @endif
@if($invoice->isMiscellaneous()) MISC{{ $invoice->description }} @else {{ $invoice->term->name }} Term — {{ $invoice->term->session->name }} @php $enrolment = $invoice->student->enrolments ->where('academic_session_id', $invoice->term->academic_session_id)->first(); @endphp @if($enrolment) · {{ $enrolment->schoolClass->display_name }} @endif @endif
{{ $invoice->student->admission_number }}
PDF @if($invoice->isDraft()) @else @endif @if($invoice->status !== 'paid') @endif @if($this->canDelete()) @endif
Total
₦{{ number_format($invoice->total_amount, 0) }}
Paid
Balance
₦{{ number_format($invoice->balance, 0) }}
{{-- Two-column grid --}}
{{-- LEFT: Line items + payment history --}}
{{-- Fee line items --}}
Fee Items @if($this->canEdit()) @endif
@if($invoice->items->isEmpty())
No line items on this invoice.
@else @if($this->canEdit())@endif @foreach($invoice->items as $item) @if($this->canEdit()) @endif @endforeach
Item Source AmountActions
{{ $item->item_name }} @if(is_null($item->fee_item_id)) Custom @elseif($item->added_by === 'admin') Admin @else System @endif ₦{{ number_format($item->amount, 0) }}
{{-- Edit amount --}} {{-- Remove item --}}
Total ₦{{ number_format($invoice->total_amount, 0) }}
@endif
{{-- Payment history --}}
Payment History {{ $invoice->payments->count() }} {{ Str::plural('payment', $invoice->payments->count()) }}
@if($invoice->payments->isEmpty())
No payments recorded yet.
@else @foreach($invoice->payments->sortByDesc('paid_at') as $payment) @endforeach
Date Method Receipt Amount
{{ $payment->paid_at->format('d M Y') }} {{ $payment->method }} {{ $payment->receipt_number }} ₦{{ number_format($payment->amount, 0) }}
Total Paid ₦{{ number_format($invoice->amount_paid, 0) }}
@endif
{{-- RIGHT: Student info + invoice metadata --}}
Full Name{{ $invoice->student->full_name }}
Admission No.{{ $invoice->student->admission_number }}
@if($enrolment)
Class{{ $enrolment->schoolClass->display_name }}
@endif
Gender{{ $invoice->student->gender }}
@if($invoice->student->parents->isNotEmpty())
Parent / Guardian
@foreach($invoice->student->parents as $parent)
{{ $parent->user?->name ?? $parent->_temp_name ?? '—' }} {{ $parent->user?->email ?? $parent->_temp_email ?? '' }} @if($parent->phone) · {{ $parent->phone }} @endif
@endforeach
@endif
Invoice Details
Invoice ID#{{ str_pad($invoice->id, 6, '0', STR_PAD_LEFT) }}
@if($invoice->isMiscellaneous())
TypeMiscellaneous
Description{{ $invoice->description }}
@else
Term{{ $invoice->term->name }}
Session{{ $invoice->term->session->name }}
@endif
Generated{{ $invoice->created_at->format('d M Y') }}
Sent to Parent @if($invoice->sent_at) {{ $invoice->sent_at->format('d M Y, g:ia') }} @else Not sent yet @endif
Status {{ ucfirst($invoice->status) }}
{{-- ── Virtual Account Status ── --}} @php $primaryParent = $invoice->student->parents ->filter(fn($p) => $p->user !== null) ->first(); $hasAnyAccount = $primaryParent && !empty($primaryParent->active_account_number); @endphp
Virtual Account @if($hasAnyAccount) Active @elseif($primaryParent?->isWalletProvisioning()) Provisioning… @elseif($primaryParent?->isWalletFailed() && !$hasAnyAccount) Failed @elseif($invoice->isSent()) Pending… @else Not sent yet @endif
{{-- ═══════════════════════════════════════════════════════════════════════════ MODALS ═══════════════════════════════════════════════════════════════════════════ --}} {{-- Record payment modal --}} @if($showPayForm) @endif {{-- Add item modal --}} @if($showAddItem) @endif {{-- Edit item amount modal --}} @if($showEditItem) @php $editingItem = $invoice->items->firstWhere('id', $editingItemId); @endphp @if($editingItem) @endif @endif {{-- Delete invoice confirm --}} @if($showDeleteConfirm) @endif
NurtureVilleSMS
Internal Server Error
UnexpectedValueException
Invalid route action: [App\Livewire\Admin\Fees\InvoiceDetail].
vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php :92
vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php :47
vendor/laravel/framework/src/Illuminate/Routing/Route.php :198
vendor/laravel/framework/src/Illuminate/Routing/Route.php :179
vendor/laravel/framework/src/Illuminate/Routing/Router.php :671
vendor/laravel/framework/src/Illuminate/Routing/Router.php :563
vendor/laravel/framework/src/Illuminate/Routing/Router.php :543
vendor/laravel/framework/src/Illuminate/Routing/Router.php :161
vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php :361
routes/web.php :74
vendor/laravel/framework/src/Illuminate/Routing/Router.php :511
vendor/laravel/framework/src/Illuminate/Routing/Router.php :467
vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php :207
routes/web.php :59
vendor/laravel/framework/src/Illuminate/Routing/RouteFileRegistrar.php :35
vendor/laravel/framework/src/Illuminate/Routing/Router.php :513
vendor/laravel/framework/src/Illuminate/Routing/Router.php :467
vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php :207
vendor/laravel/framework/src/Illuminate/Foundation/Configuration/ApplicationBuilder.php :248
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :36
vendor/laravel/framework/src/Illuminate/Container/Util.php :43
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :83
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :35
vendor/laravel/framework/src/Illuminate/Container/Container.php :696
vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php :162
vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php :59
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :36
vendor/laravel/framework/src/Illuminate/Container/Util.php :43
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :83
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :35
vendor/laravel/framework/src/Illuminate/Container/Container.php :696
vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php :144
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :1154
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :1132
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :1131
vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php :17
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :342
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php :187
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php :171
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php :145
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :1220
public/index.php :17
Request
GET /%7B%7B%20route('admin.students.profile',%20$invoice-%3Estudent)%20%7D%7D
Headers
x-forwarded-for
216.73.217.64
cf-ray
9f20ffdddce6addf-CMH
accept
*/*
accept-encoding
gzip, br
user-agent
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
cdn-loop
cloudflare; loops=1
cf-connecting-ip
216.73.217.64
cf-ipcountry
US
cf-visitor
{"scheme":"https"}
x-forwarded-proto
https
connection
Keep-Alive
host
connect.nurturevilleschool.org
Body
No body data
Application
Routing
No routing data
Database Queries
No query data